package com.example.big_event.controller;

import com.example.big_event.pojo.Category;
import com.example.big_event.pojo.Result;
import com.example.big_event.service.CategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/category")
public class CategoryController {

    @Autowired
    CategoryService service; //注解注入service

    @PostMapping//添加分类 请求中携带分类实体类
    public Result add( @RequestBody @Validated(Category.add.class) Category category){

        //service调用添加方法
        service.add(category);

        //返回成功信息
        return Result.success();
    }

    @GetMapping//查询所有分类 没有请求参数
    public Result<List<Category>> list(){

        //service调用方法
        List<Category> list = service.select();

        //返回成功信息
        return Result.success(list);

    }


    @GetMapping("/detail")//查看当前用户有多少分类 请求带id
    public Result<List<Category>> detail(Integer id){

        //service调用方法 返回成功信息
        List<Category> category = service.findByid(id);
        return Result.success(category);
    }

    @GetMapping("/delete")//删除分类 传入分类id
    public Result deleteCategory(Integer id){

        //service调方法 返回信息
        service.delete(id);
        return Result.success();
    }

//修改分类信息
    @PutMapping//传入分类实体类  这个实体类中的属性约束属于update  id分类id即可，分类实体类中进行约束
    public Result update(@RequestBody @Validated(Category.update.class) Category category){

//service调方法 返回信息
        service.update(category);
        return Result.success();
    }







}
